You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
AAVSOP2013.cpp.obj : error LNK2019: unresolved external symbol htonl referenced in function "unsigned __int64 __cdecl fwrite_int32_t(int,struct _iobuf *)"
AAVSOP2013.cpp.obj : error LNK2019: unresolved external symbol ntohl referenced in function "int __cdecl convert_read_int32_t(unsigned int const &)"
lib\aaplus.dll : fatal error LNK1120: 2 unresolved externals
File:AAVSOP2013.cpp (new in v2.70)
Build phase: Debug build, link stage
Analysis:
Version 2.70 of libaaplus introduces AAVSOP2013.cpp which uses the Winsock byte-order functions htonl() and ntohl() for binary file I/O in the VSOP2013 planetary ephemeris reader. These functions are provided by ws2_32.lib on Windows. The CMake patch (fix-cmakelists.patch) does not link this library, causing unresolved externals on all Windows dynamic-link triplets.
The failure only affects dynamic-link Windows builds (x64-windows, x86-windows, arm64-windows, x64-windows-release). The static-link Windows triplets (x64-windows-static, x64-windows-static-md, arm64-windows-static-md) all pass — this is because static library builds defer symbol resolution to the final consumer, so the missing ws2_32 link doesn't surface at build time.
Linux, macOS, and Android all pass because htonl/ntohl are provided by the system C library (<arpa/inet.h>) without needing an extra link flag.
Cascade failures:libaaplus_core and libaaplus_tools fail on each affected triplet as downstream dependencies (2 per triplet × 4 triplets = 8 total cascade failures).
Suggested fix: Add ws2_32 as a link dependency in the CMake patch when building on Windows:
Alternatively, the upstream AAVSOP2013.cpp could use platform-agnostic byte-swap macros (e.g., from <cstdlib>) instead of Winsock functions, but that would require an upstream change or an additional source patch.
🟡 Known / Expected Failures (Baseline)
No entries for libaaplus in scripts/ci.baseline.txt. All failures are new regressions.
ℹ️ Notes
The root cause is a single missing link library (ws2_32) — a one-line fix in the CMake patch resolves all 4 triplet failures and 8 cascade failures
Static-link triplets pass because unresolved externals in static libraries are deferred to link time of the consuming application
The AAVSOP2013 module is new in v2.70 and was not present in v2.36, explaining why this wasn't an issue before
The PR also correctly updated the SHA512 hash and version database entries
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
./vcpkg x-add-version --alland committing the result.http://www.naughter.com/aa.html